import wx
from sympy.codegen.cnodes import sizeof

app = wx.App()
# 创建一个窗口
'''
wx.Frame(Parent, ID, Title, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="frame")
args 表示是否有父级，None 表示没有父级，是顶级窗口
id 给当前窗口一个id ，wx.ID_ANY 自动生成一个ID
size: 窗口大小 
pos 窗口位置
name 后面引用窗口时所需的名称，默认可以不设置，可以用变量的值来引用
style 窗口样式
创建一个顶级窗口作为 wx.Frame 类的对象。 标题和大小参数在构造函数中给出。
虽然可以在Frame对象中添加其他控件，但是无法管理它们的布局。 因此，将一个 Panel 对象放入 Frame 中。
'''
window = wx.Frame(None, id=wx.ID_ANY,size=(400,600),title='测试窗口名称', pos=wx.DefaultPosition, style=wx.DEFAULT_FRAME_STYLE)

# 创建面板，并设置父级为 window
pls = wx.Panel(window,size=(400,600))

# 创建一个sizer = wx.BoxSizer(wx.VERTICAL)
main_sizer = wx.BoxSizer(wx.VERTICAL)
text_ctrl = wx.TextCtrl(pls, style=wx.TE_MULTILINE)
main_sizer.Add(text_ctrl, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)

# 底部按钮
button_sizer = wx.BoxSizer(wx.HORIZONTAL)

btn1 = wx.Button(pls, label="按钮 1")
btn2 = wx.Button(pls, label="按钮 2")
btn3 = wx.Button(pls, label="按钮 3")

button_sizer.Add(btn1, proportion=1, flag=wx.ALL, border=5)
button_sizer.Add(btn2, proportion=1, flag=wx.ALL, border=5)
button_sizer.Add(btn3, proportion=1, flag=wx.ALL, border=5)
'''
    proportion 参数：指定组件在 Sizer 中的伸缩比例。例如：
        proportion=1 表示该组件会随窗口放大而扩展。
        proportion=0 表示该组件保持原始大小（不伸缩）。
    flag 参数：
        wx.EXPAND：使组件填充整个可用空间。
        wx.ALL：在组件周围添加边框。
        wx.HORIZONTAL/wx.VERTICAL：指定 Sizer 的排列方向。'''
main_sizer.Add(button_sizer, proportion=0, flag=wx.EXPAND | wx.ALL, border=10)

pls.SetSizer(main_sizer)
'''
    文本创建，args 父级窗口
    第二个参数： 
    pos  设置文字位置
'''
# label = wx.StaticText(pls, 2, 'Hello world',pos=(100,20))
# # 输入框
# input  = wx.TextCtrl(pls, id=wx.ID_ANY, pos=(100,40))
# # 单选框21935921313
# radio = wx.RadioButton(pls, id=wx.ID_ANY, pos=(100,70), label='男')
# radio2 = wx.RadioButton(pls, id=wx.ID_ANY, pos=(200,70), label='女')
# # radio3 = wx.RadioBox(pls, id=wx.ID_ANY, pos=(10,100), label='三件事', size=(40,60))
#
# # 复选框
# checkbox = wx.CheckBox(pls, id=wx.ID_ANY, label='酒水', pos=(10,90))
# checkbox2 = wx.CheckBox(pls, id=wx.ID_ANY, label='水果', pos=(80,90))
#
# # 下拉列表
# select = wx.ComboBox(pls, id=wx.ID_ANY, pos=(10,110), choices=('苹果','梨','桃','山查','葡萄'))
#
# # 进度条
# proce = wx.Gauge(pls, id=wx.ID_ANY, pos=(10,130), size=(200,20))

# 菜单
# menu = wx.Menu()

# 呈现html

# 创建盒子
# box = wx.BoxSizer(wx.VERTICAL)
#
# # # 创建伸缩框，且里面有两个button
# # flex = wx.FlexGridSizer(1, 4, 1000,10000)
# conn_btn = wx.Button(pls,label='连接',size=(180,40), pos=(10, 0))
# dis_conn_btn = wx.Button(pls,label='断开',size=(180,40),pos=(210,0))
#
# # 设置菜单
# file_menu = wx.Menu()
# file_menu.Append(wx.ID_ANY,'关于窗口')
# file_menu.Append(wx.ID_ANY,'窗口信息')
# # menuBar = wx.MenuBar()
# # menuBar.Append(file_menu, u"文件")
# # menuBar.SetMenuBar(menuBar)
# # self.Show(True)
#
# # 文本创建
# text =wx.StaticText(pls,label='syz', pos=(10, 30))
#
# #输入框的创建
# input = wx.TextCtrl(pls, pos=(10, 60), size=(180,40), style=wx.TE_HT_ON_TEXT)



# 应用窗口展示
window.Show()
#运行这个应用程序
app.MainLoop()